define(function(require, exports, module) {
  var $ = require('$');
  var dtUtil = require('datatableutil');
  require("bootstrap_commonrequire");
  var bootbox = require("bootbox");
  var loader = require("./loader/loader");
  require('select2.css');
  require('select2');

  exports.init = function(divId, data) {
    $(document).ready(function() {
      // 蒙版
      loader.loading("数据加载中，请稍后……");
      // 加载自定义模板-条件区域
      var template2 = require("./smsTemplateAppForm.tpl");
      var Widget2 = require("widget");
      var Component2 = Widget2.extend({
        template : template2
      });
      new Component2({
        renderTo : divId
      });
      // 获取未配置模板的查询条件，
      function getConditionChoose() {
        //获取查询条件
        var queryStr = "";
        
        var template_name = $('#template_name').val();// 模板名称
        if (template_name != '' && template_name != null) {
          queryStr += ("template_name like '%" + template_name + "%';");
        }
        
        var template_code = $('#template_code').val();// 模板标识
        if (template_code != '' && template_code != null) {
          queryStr += ("template_code='" + template_code + "';");
        }
        
        return queryStr;
      };
      
      
      // 加载表单模板和数据
      var Table = require("table");
      // 查询内容显示（已配置的模板）
      new Table({
        attrs : {
          id : "data_table_Select",
          isHovered : false,
          isStriped : true,
          isBordered : false
        },
        renderTo : "tableSelect"

      });
      //------------------------------------------------------------
      //-------------------根据app_key，查询所有已配置的模板--------------
      var data_table_select = $('#data_table_Select').dataTable({
        "sDom" : "<'hidden'<'span6'l><'hidden'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
        "bJQueryUI" : false,
        "oLanguage" : {
          "sUrl" : "/business/js/common/table/src/lang/dataTable.cn.txt"
        },
        "sPaginationType" : "bootstrap", // 分页自带两种样式，full_numbers和two_button(默认)
        'bPaginate' : false, // 是否分页
        "bProcessing" : true, // 当datatable获取数据时候是否显示正在处理提示信息。
        "bServerSide" : true, // 指定服务器端分页
        "bDeferRender" : true,
        "bFilter" : true,
        "bSort" : true,
        "bInfo" : true,
        "sAjaxSource" : "/smsConfigure/queryTemplateApp.do",
        "iDisplayLength" : DATATABLES_CONFIG.iDisplayLength.DEFAULT, // 默认分页的每页记录数
        "fnServerData" : function(sSource, aoData, fnCallback, oSettings) {
          var queryparam = dtUtil.convert_aoData(aoData);
          queryparam.app_key = data.app_key;
          // 添加自己的额外参数
          oSettings.jqXHR = $.ajax({
            "dataType" : 'json',
            "contentType" : "application/json;charset=UTF-8",
            "type" : "GET",
            "url" : sSource,
            "data" : queryparam, // 将请求数据转换为后台要求的JSON格式
            "success" : function(json) {
              if (json.flag == '000000') {
                dtUtil.successCallback(json, aoData, fnCallback);
                // 隐藏该table表单，自拟表单结构
                $("#data_table_Select").hide();
                // 清空table内容
                $("#tableSelectNew").empty();//已配置的模板区域
                
                // 获取拼接成json串
                var jsondata = json.data;
                var content = '<td style="width:25%;">numName<label title="删除关联关系" style="font-size:140%;color:red;cursor:pointer"><center>×</center>' +
                '<input name="myDeleteById" class="tableCheckbox2" style="display:none;" type="checkbox" value="delByAbiId" /></label></td>';
                var htmls = [];// 设置tableSelectNew的table中的html内容
                var colNum = 4;// 每行放置几列数据
                var totalItemNum = 0;
                totalItemNum = jsondata.totalItemNum;
                
                // 拼接table内容
                if(totalItemNum != 0){
                  // 获取data中的items属性
                  var items = jsondata.items;
                  var itemsLen = items.length;
                  var checkboxSelectId = "";// 
                  var numName = "";// 
                  
                  // 设置tableSelectNew的table中的html内容
                  for(var i=1;i<=items.length;i++){
                	  var bean = items[i-1];
                	  numName = bean.template_code + "(" + bean.template_name + ")";
                	  checkboxSelectId = bean.template_code;// 
                    
                	  if(i%colNum==1){
                		  htmls.push("<tr>" + content.replace(/numName/g, numName).replace(/delByAbiId/g, checkboxSelectId));
                		  if(i==itemsLen){
                			  htmls.push("</tr>");
                		  }
                	  }else if(i%colNum==0){//这里控制
                		  htmls.push(content.replace(/numName/g, numName).replace(/delByAbiId/g, checkboxSelectId) + "</tr>");
                	  }else{
                		  htmls.push(content.replace(/numName/g, numName).replace(/delByAbiId/g, checkboxSelectId));
                		  if(i==itemsLen){
                			  htmls.push("</tr>");
                		  }
                	  }
                    
                  }
                }
                else{
                	htmls.push("<div>未配置模板</div>");
                }
                
                $("#data_table_Select_info").text("共 "+totalItemNum+" 条记录");
                
                // 将数组转换成字符串，用空格分开
                var myhtml = htmls.join('');
                // 显示table内容
                $("#tableSelectNew").append(myhtml);
                /////////////////删除//////////////////////
                $("[name='myDeleteById']:checkbox").on('click', function(){
                  if(window.confirm('您确定要执行此操作吗？')){
                    if($(this).attr("checked")=="checked"){
                      // 获取Checkbox中的Value值，包含numbersId和numbers
                      myId=$(this).val();
                      var formdata2= {
                    		app_key : data.app_key,
                    		template_code : myId
                      };
                      $.ajax({    //删除模板与应用之间的关系 
                        url :"/smsConfigure/deleteTemplateApp.do",
                        dataType : "json",
                        data : "data=" + JSON.stringify(formdata2),
                        type : "POST",
                        async : false,
                        success : function(json) {
                          if(json.flag == '000000'){
                            // 重新加载该界面的内容
                            data_table_select.fnFilter("");
                            data_table_choose.fnFilter("");
                            return true;
                          } else {
                            oauth2Relogin();
                          }
                        },
                        error : function() {
                          loader.noloading();
                          bootbox.alertTimeout("网络请求失败，请重试！");
                        }
                      });
                      return true;
                    }else{
                      return false;
                    }
                  }else{
                    return false;
                  }
                });
                ////////////删除///////////////////////////
                
                // 隐藏蒙版
                loader.noloading();
              } else {
                oauth2Relogin();
              }
            }
          });

        },
        "aoColumns" : [ {
          "sTitle" : "模板标识QQQ",
          "bSortable" : false,
          "mData" : "template_code",
          "bVisible" : true
        } ],
        "fnDrawCallback" : function(oSettings) {
          // 表格绘制完成后，去除width属性，使表格可缩放
          $('#' + oSettings.sTableId).css("width", "");
        }
      });
    //-------------------根据app_key，查询所有已配置的模板-------------
    //------------------------------------------------------------
      
     
      // 加载表单模板和数据
      var Table2 = require("table");
      // 查询内容显示(未配置模板)
      new Table2({
        attrs : {
          id : "data_table_Choose",
          isHovered : false,
          isStriped : true,
          isBordered : false
        },
        renderTo : "tableChoose"

      });
      //---------------------------------------------------------
      //-------------------根据app_key查询所有未配置模板--------------
      var data_table_choose = $('#data_table_Choose').dataTable({
        "sDom" : "<'hidden'<'span6'l><'hidden'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
        "bJQueryUI" : false,
        "oLanguage" : {
          "sUrl" : "/business/js/common/table/src/lang/dataTable.cn.txt"
        },
        "sPaginationType" : "bootstrap", // 分页自带两种样式，full_numbers和two_button(默认)
        'bPaginate' : true, // 是否分页
        "bProcessing" : true, // 当datatable获取数据时候是否显示正在处理提示信息。
        "bServerSide" : true, // 指定服务器端分页
        "bDeferRender" : true,
        "bFilter" : true,
        "bSort" : true,
        "bInfo" : true,
        "sAjaxSource" : "/smsConfigure/queryUnTemplateApp.do",
        "iDisplayLength" : 32, // 默认分页的每页记录数
        "fnServerData" : function(sSource, aoData, fnCallback, oSettings) {
          var queryparam = dtUtil.convert_aoData(aoData);
          
          //拼接where查询条件
          var cond = getConditionChoose();
          if (cond != '' && cond != null) {
            queryparam.q += cond;
          }
          queryparam.app_key = data.app_key;// 账号id
          // 添加自己的额外参数
          oSettings.jqXHR = $.ajax({
            "dataType" : 'json',
            "contentType" : "application/json;charset=UTF-8",
            "type" : "GET",
            "url" : sSource,
            "data" : queryparam, // 将请求数据转换为后台要求的JSON格式
            "success" : function(json) {
              if (json.flag == '000000') {
                dtUtil.successCallback(json, aoData, fnCallback);
                
                // 隐藏该table表单，自拟表单结构
                $("#data_table_Choose").hide();
                // 清空table内容
                $("#tableChooseNew").empty();//未配置的模板显示区
                
                // 获取拼接成json串
                var jsondata = json.data;
                var content = "<td style='width:25%;'><label><input id='checkboxId' type='checkbox' name='checkboxChoose' style='margin-top:-4px;' value='numName' />numName</label></td>";
                var htmls = [];// 设置html内容
                var colNum = 4;// 每行放置几列数据
                
                // 拼接table内容
                if(jsondata.totalItemNum != 0){
                  // 获取data中的items属性
                  var items = jsondata.items;
                  var itemsLen = items.length;
                  var numName = "";// 存放号码和归属地
                  var checkboxId = "";// 存放checkbox的id
                  
                  for(var i=1;i<=itemsLen;i++){
                	  var bean = items[i-1];
                	  numName = bean.template_code + "(" + bean.template_name + ")";
                	  checkboxId = bean.template_code;
                	  if(i%colNum==1){
                		  htmls.push("<tr>" + content.replace(/numName/g, numName).replace(/checkboxId/g, checkboxId));
                		  if(i==itemsLen){
                    		htmls.push("</tr>");
                		  }
                	  }else if(i%colNum==0){//这里控制
                		  htmls.push(content.replace(/numName/g, numName).replace(/checkboxId/g, checkboxId) + "</tr>");
                	  }else{
                		  htmls.push(content.replace(/numName/g, numName).replace(/checkboxId/g, checkboxId));
                		  if(i==itemsLen){
                			  htmls.push("</tr>");
                		  }
                	  }
                  }
                  
                }
                else{
                	htmls.push("<div>并不存在未配置模板</div>");
                }
                
                // 将数组转换成字符串，用空格分开
                var myhtml = htmls.join('');
                // 显示table内容
                $("#tableChooseNew").append(myhtml);//未配置的模板显示区
                // 隐藏蒙版
                loader.noloading();
              } else {
                oauth2Relogin();
              }
            }
          });

        },
        "aoColumns" : [ {
          "sTitle" : "模板标识",
          "bSortable" : false,
          "mData" : "template_code",
          "bVisible" : true
        } ],
        "fnDrawCallback" : function(oSettings) {
          // 表格绘制完成后，去除width属性，使表格可缩放
          $('#' + oSettings.sTableId).css("width", "");
        }
      });
    //-------------------根据app_key查询所有未配置模板--------------
    //---------------------------------------------------------
      
      // 未配置的模板，查询按钮
      $('#queryChooseBtn').click(function() {
        // 蒙版
        loader.loading("数据加载中，请稍后……");
        data_table_choose.fnFilter("");//未配置的模板
        return false;
      });
      
      // 未配置的模板，重置按钮
      $('#restChooseBtn').click(function() {
        // 蒙版
        loader.loading("数据加载中，请稍后……");
        $('#template_code').val("");
        $('#template_name').val("");
        data_table_choose.fnFilter("");//未配置的模板
        return false;
      });
      
      
      // 保存按钮操作
      var saveAction = function() {
        var arrSelect = [];
        // 获取选中的checkbox的value值
        var arrChk=$("input[type='checkbox'][name='checkboxChoose']:checked");
        $(arrChk).each(function(){
          var this_id = $(this).attr("id");
          var this_value = this.value;
          var getIndex = this_value.indexOf("(");
          this_value_vest = this_value.substring(0,getIndex);
          
          var formdata = {
              app_key : data.app_key,
              template_code : this_value_vest,// 
          };
          arrSelect.push(formdata);
        });
        // 提交请求，插入该号码
        $.ajax({
          url : "/smsConfigure/insertTemplateApp.do",
          dataType : "json",
          data : "data=" + JSON.stringify(arrSelect),
          type : "POST",
          success : function(json) {
            if(json.flag == '000000'){
              // 重新加载该界面的内容
              data_table_select.fnFilter("");//已配置的模板
              data_table_choose.fnFilter("");//未配置的模板
              loader.noloading();                   
            } else {
              oauth2Relogin();                    
            }
          },
          error : function(s) {
            loader.noloading();
            bootbox.alertTimeout("网络请求失败，请重试！");
          }
        });

      };
        
      // 保存按钮
      $('#submitbtn').click(function() {   
        saveAction();
        return false;
      });
      
      // 取消按钮操作
      $('#btn_cancel').on('click', function() {
    	  $("#queryAreaId").show();//查询模板
          $("#datalist_data_table").show();//数据展示区
          $('#info_edit_table').hide();//新增、修改等区
          return false;
      });
      
    });
  };
});
